package com.project.mapper.gradeMapper;

import com.project.bean.GradeBean;
import com.project.bean.RoleBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IRoleMapper {
    /**
     * 查找所有角色
     * @return 角色对象集合
     */
    public List<RoleBean> findAll();

    /**
     * 添加新角色，同时填充权限集合（角色权限中间表）
     * @param roleBean 角色对象
     */
    public void add(RoleBean roleBean);

    /**
     * 删除角色和权限中间表
     * @param id 角色id
     */
    public void delRoleGrade(int id);

    /**
     * 删除角色和用户中间表
     * @param id 角色id
     */
    public void delRoleUser(int id);

    /**
     * 根据id删除角色，先删除角色和权限中间表，再删除角色和用户中间表，最后删除该角色
     * @param id 角色id
     */
    public void del(int id);

    /**
     * 根据角色id查找角色
     * @param id 角色id
     * @return 角色对象
     */
    public RoleBean findById(int id);

    /**
     * 添加新的角色和权限中间表
     * @param id 角色id
     * @param gradeId 权限id数组
     */
    public void addRoleGrade(@Param("userId") int id, @Param("gradeArrays") int[] gradeId);

    /**
     * 查找角色的权限
     * @param roleId 角色数组
     * @return 权限集合
     */
    public List<GradeBean> findGrade(@Param("roleIdArray") int[] roleId);
}
